/**
 * 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。
 * 输入: [0,1,0,2,1,0,1,3,2,1,2,1]
 * 输出: 6
 */
var trap = function (height) {
  let left = 0, right = height.length - 1
  let count = 0
  let leftMax = 0, rightMax = 0
  while (left <= right) {
    leftMax = Math.max(leftMax, height[left])
    rightMax = Math.max(rightMax, height[right])
    if (leftMax < rightMax) {
      count += leftMax - height[left]
      left++
    } else {
      count += rightMax - height[right]
      right--
    }
  }
  return count
};

console.log(trap([0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]))